// // mock_data_generator.dart
// import 'dart:async';
// import 'dart:math';
// import 'dart:math' as math;
// import 'package:heartrate_monitoring/constants/app_constants.dart';
// import 'package:heartrate_monitoring/models/test_record.dart';
// import 'package:heartrate_monitoring/services/database_service.dart';

// class MockDataCollector {
//   final DatabaseService _db;

//   Timer? _timer;
//   int? _sessionId;
//   DateTime? _startTime;
//   final List<HeartRateData> _heartRates = [];
//   final Random _random = Random();
//   final _names = ['张三', '李四', '王五', '赵六', '陈七'];
//   final _activities =AppConstants.activities;
//   // 初始化时创建测试记录
//   MockDataCollector(this._db);

//     /// 批量生成测试会话
//   Future<void> generateSessions({
//     int count = 5,
//     Duration timeSpan = const Duration(days: 30),
//     int minDuration = 300,  // 5分钟
//     int maxDuration = 3600, // 1小时
//   }) async {
//     final endTime = DateTime.now();
//     final startTime = endTime.subtract(timeSpan);

//     for (var i = 0; i < count; i++) {
//       final sessionStart = _randomDate(startTime, endTime);
//       final duration = minDuration + _random.nextInt(maxDuration - minDuration);
      
//       await _generateSingleSession(
//         startTime: sessionStart,
//         duration: duration,
//       );
//     }
//   }

//  /// 生成单个会话数据
//   Future<void> _generateSingleSession({
//     required DateTime startTime,
//     required int duration,
//   }) async {
//     final db = await _db.database;
//      // 生成设备信息
//   final deviceName = DeviceInfoGenerator.randomDeviceName();
//   final deviceMac = DeviceInfoGenerator.randomMacAddress();
//   final batteryLevel = DeviceInfoGenerator.randomBatteryLevel();
//     // 创建初始会话记录
//     final sessionId = await db.insert('sessions', {
//       'name': _names[_random.nextInt(_names.length)],
//       'wearingMode': ['正常佩戴', '紧佩戴'][_random.nextInt(2)],
//       'gender': ['男', '女'][_random.nextInt(2)],
//       'activityType': _activities[_random.nextInt(_activities.length)],
//       'startTime': startTime.millisecondsSinceEpoch,
//       'endTime': 0,
//       'duration': 0,
//       'avg_heartRate': 0,
//       'max_heartRate': 0,
//       'min_heartRate': 0,
//         'deviceName': deviceName,
//     'deviceMac': deviceMac,
//     'deviceBattery': batteryLevel,
//       'heartRates_Count':0,
  
     
//     });

//     // 生成心率数据（模拟每秒数据）
//     final heartRates = <HeartRateData>[];
//     var (baseHr, fluctuation) = _getHrParams();
    
//     for (var s = 0; s < duration; s++) {
//       final timestamp = startTime.add(Duration(seconds: s));
      
//       // 模拟心率波动
//       baseHr += (sin(s/10) * 2).round() + _random.nextInt(3) - 1;
//       baseHr = baseHr.clamp(40, 200);

//       heartRates.add(HeartRateData(
//         timestamp: timestamp,
//         value: baseHr,
//       ));
//     }

//     // 批量插入心率数据
//     final batch = db.batch();
//     for (final hr in heartRates) {
//       batch.insert('heart_rates', {
//         'session_id': sessionId,
//         'timestamp': hr.timestamp.millisecondsSinceEpoch,
//         'value': hr.value,
//       });
//     }
//     await batch.commit();

//     // 更新会话统计信息
//     final stats = _calculateStats(heartRates);
//     await db.update(
//       'sessions',
//       {
//         'endTime': startTime.add(Duration(seconds: duration)).millisecondsSinceEpoch,
//         'duration': duration,
//         'avg_heartRate': stats['avg'],
//         'max_heartRate': stats['max'],
//         'min_heartRate': stats['min'],
//         'heartRates_Count': heartRates.length,

//       },
//       where: 'id = ?',
//       whereArgs: [sessionId],
//     );
//   }
// // 修改会话生成部分
// Future<void> _generateSingleSession2({
//   required DateTime startTime,
//   required int duration,
// }) async {
//   final db = await _db.database;
  
//   // 生成设备信息
//   final deviceName = DeviceInfoGenerator.randomDeviceName();
//   final deviceMac = DeviceInfoGenerator.randomMacAddress();
//   final batteryLevel = DeviceInfoGenerator.randomBatteryLevel();

//   // 创建初始会话记录
//   final sessionId = await db.insert('sessions', {
//     'name': _names[_random.nextInt(_names.length)],
//      'wearingMode': ['正常佩戴', '紧佩戴'][_random.nextInt(2)],
//     'gender': ['男', '女'][_random.nextInt(2)],
//     'activityType': _activities[_random.nextInt(_activities.length)],
//     'startTime': startTime.millisecondsSinceEpoch,
//     'endTime': 0,
//     'duration': 0,
//     'avg_heartRate': 0,
//     'max_heartRate': 0,
//     'min_heartRate': 0,
//     'deviceName': deviceName,
//     'deviceMac': deviceMac,
//     'deviceBattery': batteryLevel,
//     'heartRates_Count':0,
//   });}
  
  
  
//   // 获取心率基准参数
//   (int, int) _getHrParams() {
//     return switch (_random.nextInt(5)) {
//       0 => (70, 5),   // 静息
//       1 => (90, 8),   // 步行
//       2 => (120, 15), // 跑步
//       3 => (110, 12), // 游泳
//       _ => (100, 10), // 默认
//     };
//   }

//   // 生成随机日期
//   DateTime _randomDate(DateTime start, DateTime end) {
//     return start.add(Duration(
//       seconds: _random.nextInt(end.difference(start).inSeconds),
//     ));
//   }

//   // 计算统计信息
//   Map<String, int> _calculateStats(List<HeartRateData> data) {
//     final values = data.map((hr) => hr.value).toList();
//     return {
//       'avg': (values.reduce((a, b) => a + b) / values.length).round(),
//       'max': values.reduce(max),
//       'min': values.reduce(min),
//     };
//   }
  
// }
// // 添加设备模拟数据生成器
// class DeviceInfoGenerator {
//   static final _deviceNames = ["PO3", "PO4", "PO5"];
//   static final _random = Random();

//   static String randomDeviceName() => _deviceNames[_random.nextInt(_deviceNames.length)];
  
//   static String randomMacAddress() {
//     final parts = List.generate(6, (_) => _random.nextInt(256).toRadixString(16).padLeft(2, '0'));
//     return '80:ae:ff:${parts.sublist(3).join(':')}';
//   }

//   static String randomBatteryLevel() => '${80 + _random.nextInt(21)}'; // 80-100%
// }